* @return bool
*/
function undelete( $timestamps ) {
- global $wgDeferredUpdateList, $wgParser, $wgDBtype;
+ global $wgParser, $wgDBtype;
$fname = "doUndeleteArticle";
$restoreAll = empty( $timestamps );
$newid = 0;
$pageId = $page->page_id;
$previousRevId = $page->page_latest;
- $previousTimestamp = $page->rev_timestamp;
} else {
# Have to create a new article...
$newid = $article->insertOn( $dbw );
$pageId = $newid;
$previousRevId = 0;
- $previousTimestamp = 0;
}
if( $restoreAll ) {
$this->mAction = $request->getText( 'action' );
$this->mTarget = $request->getText( 'target' );
$this->mTimestamp = $request->getText( 'timestamp' );
- $this->mRestore = $request->getCheck( 'restore' ) &&
- $request->wasPosted() &&
+
+ $posted = $request->wasPosted() &&
$wgUser->matchEditToken( $request->getVal( 'wpEditToken' ) );
+ $this->mRestore = $request->getCheck( 'restore' ) && $posted;
+ $this->mPreview = $request->getCheck( 'preview' ) && $posted;
+
if( $par != "" ) {
$this->mTarget = $par;
}
$wgOut->setPagetitle( wfMsg( "undeletepage" ) );
$wgOut->addWikiText( "(" . wfMsg( "undeleterevision",
- $wgLang->date( $timestamp ) ) . ")\n<hr />\n" . $text );
+ $wgLang->date( $timestamp ) ) . ")\n" );
+
+ if( $this->mPreview ) {
+ $wgOut->addHtml( "<hr />\n" );
+ $wgOut->addWikiText( $text );
+ }
+
+ $self = Title::makeTitle( NS_SPECIAL, "Undelete" );
+
+ $wgOut->addHtml(
+ wfElement( 'textarea', array(
+ 'readonly' => true,
+ 'cols' => intval( $wgUser->getOption( 'cols' ) ),
+ 'rows' => intval( $wgUser->getOption( 'rows' ) ) ),
+ $text . "\n" ) .
+ wfOpenElement( 'div' ) .
+ wfOpenElement( 'form', array(
+ 'method' => 'post',
+ 'action' => $self->getLocalURL( "action=submit" ) ) ) .
+ wfElement( 'input', array(
+ 'type' => 'hidden',
+ 'name' => 'target',
+ 'value' => $this->mTargetObj->getPrefixedDbKey() ) ) .
+ wfElement( 'input', array(
+ 'type' => 'hidden',
+ 'name' => 'timestamp',
+ 'value' => $timestamp ) ) .
+ wfElement( 'input', array(
+ 'type' => 'hidden',
+ 'name' => 'wpEditToken',
+ 'value' => $wgUser->editToken() ) ) .
+ wfElement( 'input', array(
+ 'type' => 'hidden',
+ 'name' => 'preview',
+ 'value' => '1' ) ) .
+ wfElement( 'input', array(
+ 'type' => 'submit',
+ 'value' => wfMsg( 'showpreview' ) ) ) .
+ wfCloseElement( 'form' ) .
+ wfCloseElement( 'div' ) );
}
/* private */ function showHistory() {
return;
}
if ( $this->mAllowed ) {
- $wgOut->addWikiText( wfMsg( "undeletehistory" ) . "\n----\n" . $text );
+ $wgOut->addWikiText( wfMsg( "undeletehistory" ) );
} else {
$wgOut->addWikiText( wfMsg( "undeletehistorynoadmin" ) );
}